
var mongoose = require('mongoose');
const autoIncrement = require('mongoose-plugin-autoinc');
autoIncrement.initialize(mongoose.connection);

// mongoose.connect('mongodb://127.0.0.1:27017/MiFuEntrepot');
mongoose.connect('mongodb://192.168.254.158:27017/MiFuEntrepot');
var db = mongoose.connection;

db.on('error', function () {
	console.log('数据库连接失败');
});
db.on('open', function () {
	console.log('数据库连接成功');
});

// 数据库图表结构对象
var Schema = mongoose.Schema;

// 生成 学生 collection
// 去掉版本号: __v {versionKey:false}
var adminSchema = new Schema({
	adminname: String,
	password: String,
	role: Number,
	asrole:Array
}, { versionKey: false })

var Admin = mongoose.model('Admin', adminSchema);


// 生成班级 collection
// 第一个参数: 生成集合的结构   field 和 type
// 第二个参数: 集合名,这里也可以不写,如果省略不写,那么会生成
// 的 collection_name = 构造函数名(复数形式) 会在构造函数后
// 加个s,(比如 Class ---> classes, Student ---> students)
const dataObj = {
	id: Number,
	liaohao: String,
	bujian: String,
	guige: String,
	changshang: String,
	wuliao: String,
	zuixiao: String,
	zuixia: String,
	zhouqi: String,
	cangku: String,
	huojia: String,
	kucun: Number
}
var entrepotSchema = new Schema({
	...dataObj,
	classInfo: { type: Schema.Types.ObjectId, ref: 'Admin' }
}, { versionKey: false });
// 生成构造函数 Class
entrepotSchema.plugin(autoIncrement.plugin, {
	model: 'Entrepot',
	field: 'id', // 你的自增ID字段名
	startAt: 1, // 起始值为1
	incrementBy: 1 // 自增步长为1
  });
var Entrepot = mongoose.model('Entrepot', entrepotSchema);

var detail = new Schema({
	...dataObj,
	time: Number,
	type: Number, // 1 存 2 取
	adminname: String,
	num: Number // 取的数量
}, { versionKey: false });
var Detail = mongoose.model('Detail', detail);

var fileData = new Schema({
	name: String,
	time: Number,
	type: Number, // 1 存 2 下载 3 文件已被删除
	adminname: String,
}, { versionKey: false });
var FileData = mongoose.model('FileData', fileData);


var auditDb = new Schema({
	userName: String,
	operationType: String, // 操作类型  add del update
	// targetId: { type: Schema.Types.ObjectId, ref: 'FileData' },  // 目标id (文件id)
	targetId: Schema.Types.ObjectId,  // 目标id (文件id)
	status: Number,  // 审核状态  1 通过  0 未通过 -1 未审核
	reviewerId: String, // 审核人id
	reviewDate: String, // 审核时间
	comments: String // 审核意见
}, { versionKey: false });
var AuditDb = mongoose.model('AuditDb', auditDb);

module.exports = {
	FileData,
	Detail,
	Entrepot,
	Admin,
	AuditDb
}
